#ifndef FOLLOW_COLOR_LANE_STATE_H
#define FOLLOW_COLOR_LANE_STATE_H

#include "LaneEvent.hpp"
#include "State.hpp"

/**
 * The state the robot has while it follows a colored lane.
 */

class FollowColorLaneState : public State
{
public:
	FollowColorLaneState();
	FollowColorLaneState(bool aPreferLeft);
	/**
	 * Handles incoming events.
	 *
	 * @param the event that should be handled.
	 * @see Event.hpp
	 */

	virtual void handleEvent(Event& event);

	/**
	 * initialises state.
	 * This function is not implemented yet.
	 */
	virtual void startState();

	/**
	 * Returns the state's type.
	 *
	 * @return State::FOLLOWCOLORLANE
	 * @see StateType.hpp
	 */
	virtual StateType getStateType();
private:
	void handleLaneEvent(LaneEvent& clEvent);
	bool preferLeft;
};
#endif
